<?php
/**
 * Created by PhpStorm.
 * User: 554665488
 * Date: 2018-7-2
 * Time: 22:07
 * @description:
 * @Author: yfl
 * @QQ 554665488
 */
//for($i = 1;$i <= 100; $i++ ){
//    if($i % 3 == 0 || $i % 7 == 0){
////        continue;
//        break;
//    }
//   else{
//    echo "$i \n<br/>";
//}
//}
//for($i = 1000;$i >= 1 ; $i--){
//    if( sqrt($i) >= 29){
//        echo  "$i \n<br/>";
//}
//    else{
//        return;
//    }
//}
//echo "本行将不会被输出";
//return;
/*
 * 在PHP中break语句不仅可以跳出当前循环，还可以指定跳出几层循环
 * break $num;  num为向外跳的层数 num不能大于最大循环层数
 */

//  第三重循环
//while(true) {
//    //  第二重
//    for(;;) {
//        //  第一重
//        for($i = 0; $i <= 10; $i++) {
//            echo "$i ";
//            if($i == 7) {
//                echo "i=7, 跳出1重循环";
//                break;
//            }
//        }
//        echo "\n";
//        //  第一重
//        for($i = 0; $i <= 20; $i++){
//            echo "$i ";
//            if($i == 15) {
//                echo "i=15, 跳出3重循环";
//                break 3;
//            }
//        }
//        echo "绝对不会输出这里";
//    }
//}

/*
 * PHP中continue只能终止本次循环而进入到下一次循环中，
 * continue $num 可以指定终止第几重的当前循环  num不能大于最大循环层数
 */
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
for ($i = 0; $i < 10; $i++) {
    echo "\n";
    if ($i % 2 == 0) {
        continue 1;
    }
//    else{
//        echo $i;
//
//        echo "这里也绝对不会输出";
//    }
//    echo $i;
//    for ($j = 2; $j < 2; $j--) {
//    for (;;) {
//        echo 1111;
//        echo $i;//1 3 5 7 9
//        continue 2; //终止第2层的当前循环
    for ($j = 0; $j < count($arr); $j++) {
//            echo $j;
        if ($j == $i) {
            continue 2; //终止第三层的当前循环
        } else {
//                echo $j;
//                echo "\$arr[" . $j . "]:" . $arr[$j] . " ";
        }
//        }
    }
    echo "这里也绝对不会输出";

}

//foreach ($arr as $index => $item) {
//    if($item ==2){
//        continue 1;
//    }
//    foreach ($arr as $key => $value) {
//        if($item ==3){
//            continue 1;
//        }
//        echo $item;
//    }
////    echo $item ."<br/>";
//}
//冒泡排序
$b = array('4', '3', '9', '1', '2', '8');
//$b = array('1', '4', '3', '9', '2', '8');//54321
//$b = array('1', '2', '4', '3', '9', '8');//5432
//$b = array('1', '2', '3', '4', '8', '9');//543
//$b = array('1', '2', '3', '4', '8', '9');//54
//$b = array('1', '2', '3', '4', '8', '9');//5
//asort($b);
//var_dump($b);
//54321   5432   543  54  5
$length = count($b) - 1;
//for ($i = 0; $i <= $length; $i++) {
//    for ($j = $length; $j > $i; $j--) {
//        if ($b[$j] < $b[$j - 1]) {
//            $temp = $b[$j];
//            $b[$j] = $b[$j - 1];
//            $b[$j - 1] = $temp;
//        }
//    }
//}
//for ($i = 0; $i <= $length; $i++) {
//    for ($k = 0; $k < $length - $i; $k++) {
////        echo $k;                      //01234 0123 012 01 0
//        if ($b[$k] > $b[$k + 1]) {
////            $temp = $b[$k + 1];
//            $b[$k] = $b[$k + 1];
//            $b[$k + 1] = $b[$k];
//        }
//    }
//}
//for ($i = 0; $i <= $length; $i++) {
//    for ($k = $i + 1; $k <= $length; $k++) {
////        echo $k;
//        if ($b[$i] < $b[$k]) {
//            $temp = $b[$i];
//
//            $b[$i] =$b[$k];
//            $b[$k] =$temp;
//
//        }
//    }
//}
//var_dump($b);
//return;
//for ($i = 0; $i <= $length; $i++) {
//    for ($k = $length; $k >$i; $k--) {
//        if ($b[$k] < $b[$k - 1]) {
//            $temp = $b[$k];
//            $b[$k]= $b[$k-1];
//            $b[$k-1]= $temp;
//        }
//    }
//}
//$s = microtime(true);
for ($i = 0; $i <= $length; $i++) {
    for ($j = $i + 1; $j <= $length; $j++) {
//        echo $j;  //1234 234 34 4
        //升序
        if ($b[$i] > $b[$j]) {
//            $tmp = $b[$i];
//            $b[$i] = $b[$j];
//            $b[$j] = $tmp;
        }
//        var_dump($b);
        //降序
        if ($b[$i] < $b[$j]) {
//            $temp = $b[$i];
//            $b[$i] = $b[$j];
//            $b[$j] = $temp;
        }
    }
}

//echo microtime(true);
//$s1 = microtime(true);
//var_dump($b);       // https://blog.csdn.net/wangqinxue112/article/details/65630243
//插入排序   $arr = array(2,6,3,9)
//6239  6329
$b = array('4', '3', '9', '1', '2', '8');
//for ($i = 1; $i <= $length; $i++) {
//    for ($j = $i; $j > 0; $j--) {
//        if ($b[$j] > $b[$j - 1]) {
//            $insert = $b[$j];
//            $b[$j] = $b[$j - 1];
//            $b[$j - 1] = $insert;
//        }
//    }
//}


//for ($i = 1; $i <= $length; $i++) {
//    for ($k = $i; $k > 0; $k--) {
//        if ($b[$k] > $b[$k - 1]) {
//            $insert = $b[$k];
//            $b[$k - 1] = $insert;
//        }
//    }
//}
//echo microtime(true)-$s1;
//function insertSort(&$b)
//{
//    for ($i = 1; $i < count($arr); $i++) {
//        //$insertVal是准备插入的数
//        for ($j = $i; $j > 0; $j--) {
//            if ($arr[$j] > $arr[$j - 1]) {
//                $insertVal = $arr[$j];
//                $arr[$j] = $arr[$j - 1];
//                $arr[$j - 1] = $insertVal;
//            }
//        }
//    }
//}
//var_dump($b);
$b = array('4', '3', '9', '1', '2', '8');
function quickSort($arr)
{
    $length = count($arr);
    if ($length <= 1) return $arr;
    $left = [];
    $right = [];
    $base_num = $arr[0];

    for ($i = 1; $i < $length; $i++) {
        if($base_num>$arr[$i]){
            $left[] = $arr[$i];
        }else{
            $right[] = $arr[$i];
        }

    }
    $left = quickSort($left);

    $right = quickSort($right);
    return array_merge($left,[$base_num],$right);
}
var_dump(quickSort($b));
